#ifndef __GE_PASSREGISTRY_H__
#define __GE_PASSREGISTRY_H__

#include "GE_Base.h"
namespace Syp
{
///Pass Registry is a repository which contains a list of all passes and ensures that all passes available for use are unique by name. 
class SYPAPI PassRegistry : public UniqueRegistry<Pass>
{
public:
	static void initialise();
	
	static PassRegistry& getRegistry();
	
	static void release();

	virtual void removeAllEntries();

	virtual void removeEntry(String& s);
	
	///Register a Pass for use with the Pass Registry
	void addPass(Pass* p);
	///Dumps available info to Log file.
	void dumpInfo();
private:
	static PassRegistry* pr;
};
}


#endif //__GE_PASSREGISTRY_H__
